//
//  RelayStatusViewCell.swift
//  weibo
//
//  Created by yellow on 15/10/22.
//  Copyright © 2015年 yellow. All rights reserved.
//

import UIKit


/**
  RelayStatusViewCell的出现是，需要实现转发微博的显示，但是我们先做的基本的微博cell(当时没有考虑到转发微博的显示)
  要做转发微博的显示有2个方法：
  1.修改原来的基本cell，但是有可能带来更多地问题
  2.继承基本cell，重写父类方法注意要调用父类的方法，已达到父类帮助子类完成某些功能
  显然，使用继承的方式更加安全和快捷，以后在工作也应该使用这种方法，当需要在原有基础上完成新功能
*/
class RelayStatusViewCell: StatusViewCell {
    override var viewModel:StatusDetailViewModel?{
        
        //重写 属性 不会影响父类属性的 didSet 中的代码执行
        didSet{
            relayLable.text = viewModel?.retweetedText
            
            //获取新微博数据后需要更新配图view的约束
            statusPictureView.snp_updateConstraints { (make) -> Void in
                make.width.equalTo(statusPictureView.bounds.width)
                make.height.equalTo(statusPictureView.bounds.height)
                
                //当没有配图是，就取消statusPictureView距离正文的间距
                let top = statusPictureView.bounds.height>0 ? widgetMargin : 0
                make.top.equalTo(relayLable.snp_bottom).offset(top)
            }
        }
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    //懒加载
    
    /// 转发微博text
    lazy var relayLable:UILabel = UILabel(content: "", color: UIColor.darkGrayColor(), fontSize: 12, maxLayoutWidth: UIScreen.mainScreen().bounds.size.width - CGFloat(2*widgetMargin))
    
    /// 装载转发微博的按钮
    lazy var relayBox:UIButton = {
        let box = UIButton()
        box.backgroundColor = UIColor(white: 0.8, alpha: 0.3)
        return box
    }()
}

// MARK: - 设置界面
extension RelayStatusViewCell{
    
    override func setUI() {
        
        // 调用父类的 setupUI，设置父类控件位置
        super.setUI()
        
        //将转发微博的view放在原始微博的配图view的上面
        contentView.insertSubview(relayBox, aboveSubview: body)
        contentView.insertSubview(relayLable, aboveSubview: relayBox)
        
        
        relayBox.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(body.snp_bottom).offset(widgetMargin)
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.bottom.equalTo(bottom.snp_top)
        }
        
        relayLable.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(relayBox.snp_top).offset(widgetMargin)
            make.left.equalTo(relayBox.snp_left).offset(widgetMargin)
        }
        
        statusPictureView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(relayLable.snp_bottom).offset(widgetMargin)
            make.left.equalTo(relayLable.snp_left)
            
        }
        
    }
    
}
